#include<bits/stdc++.h>//万能头文件好
using namespace std;
int main(){
	int n,i,j,wei=0,weii,where;
	scanf("%d",&n);

//	while(pow(10,wei)<=n*n)wei++;
	wei=2;//唯一不同的地方就是这两行
	if(n==0)return 0;//特判
//	printf("%d",wei);//测试用

	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			weii=0;
			while(pow(10,weii)<=n*(i-1)+j)weii++;
			while(weii<wei){
				printf("0");
				weii++;
			}
			printf("%d",n*(i-1)+j);
		}
		printf("\n");
	}

	printf("\n");
	where=1;
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			weii=0;
			while(pow(10,weii)<=where)weii++;
			if(n-j<i){
				while(weii<wei){
					printf("0");
					weii++;
				}
				printf("%d",where);
				where++;
			}
			else{
				weii=0;
				while(weii<wei){
					printf(" ");
					weii++;
				}
			}
		}
		printf("\n");
	}
	return 0;
}